<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
	<TITLE>POSIX Threads (pthreads) for Win32</TITLE>
	<META NAME="GENERATOR" CONTENT="OpenOffice.org 3.1  (Linux)">
	<META NAME="CREATED" CONTENT="20030918;17035900">
	<META NAME="CHANGEDBY" CONTENT="Ross Johnson">
	<META NAME="CHANGED" CONTENT="20100530;16212600">
	<META NAME="DESCRIPTION" CONTENT="POSIX Threads for Win32">
	<META NAME="KEYWORDS" CONTENT="POSIX Threads Pthreads Win32">
	<STYLE TYPE="text/css">
	<!--
		H2.western { font-family: "Albany", sans-serif; font-size: 14pt; font-style: italic }
		H2.cjk { font-family: "HG Mincho Light J"; font-size: 14pt; font-style: italic }
		H2.ctl { font-family: "Arial Unicode MS"; font-size: 14pt; font-style: italic }
		H4.western { font-family: "Albany", sans-serif; font-size: 11pt; font-style: italic }
		H4.cjk { font-family: "HG Mincho Light J"; font-size: 11pt; font-style: italic }
		H4.ctl { font-family: "Arial Unicode MS"; font-size: 11pt; font-style: italic }
		H3.western { font-family: "Albany", sans-serif }
		H3.cjk { font-family: "HG Mincho Light J" }
		H3.ctl { font-family: "Arial Unicode MS" }
	-->
	</STYLE>
</HEAD>
<BODY LANG="en-AU" BGCOLOR="#ffffff" DIR="LTR">
<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=2 STYLE="page-break-before: always">
	<TR>
		<TD>
			<IMG SRC="images/Pthreads-win32-small.gif" NAME="Graphic1" ALIGN=LEFT WIDTH=303 HEIGHT=91 BORDER=0></TD>
		<TD>
			<H2 LANG="en-GB" CLASS="western" ALIGN=RIGHT><FONT FACE="verdana, arial, helvetica">Open
			Source<BR>POSIX Threads for Win32</FONT></H2>
		</TD>
	</TR>
</TABLE>
<H4 CLASS="western"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Pthreads-w32
release 2.8.0 (2006-12-22) is <A HREF="#download">out now</A>! See
the <A HREF="announcement.html">ANNOUNCEMENT</A> and
<A HREF="news.html">NEWS<BR><BR></A>Pthreads-w32 release 1.11.0
(2005-06-04) is <A HREF="#download">the last series 1.x.x version</A>!
<BR></SPAN></FONT><FONT FACE="verdana, arial, helvetica"><FONT SIZE=1 STYLE="font-size: 8pt"><SPAN LANG="en-GB"><SPAN STYLE="font-weight: normal">(Version
1.11.0 is a back-port of the 2.7.0 functionality and bug fixes. See
the NEWS file inside the package for more information.)</SPAN></SPAN></FONT></FONT></H4>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">What
is this project about?</FONT></H2>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
<A HREF="http://www.UNIX-systems.org/version3/ieee_std.html">POSIX
1003.1-2001</A> standard defines an application programming interface
(API) for writing multithreaded applications. This interface is known
more commonly as </SPAN></FONT><EM><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">pthreads</SPAN></FONT></EM><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">.
A good number of modern operating systems include a threading library
of some kind: Solaris (UI) threads, Win32 threads, DCE threads,
DECthreads, or any of the draft revisions of the pthreads standard.
The trend is that most of these systems are slowly adopting the
pthreads standard API, with application developers following suit to
reduce porting woes. </SPAN></FONT>
</P>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">Win32 does
not, and is unlikely to ever, support pthreads natively. This project
seeks to provide a freely available and high-quality solution to this
problem. </FONT>
</P>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">Various
individuals have been working on independent implementations of this
well-documented and standardised threading API, but most of them
never see the light of day. The tendency is for people to only
implement what they personally need, and that usually does not help
others. This project attempts to consolidate these implementations
into one implementation of pthreads for Win32. </FONT>
</P>
<H2 LANG="en-GB" CLASS="western" STYLE="page-break-after: avoid"><FONT FACE="verdana, arial, helvetica"><FONT SIZE=5><B>License</B></FONT></FONT></H2>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">This
implementation is <A HREF="http://www.gnu.org/">free software</A>,
distributed under the <A HREF="copying.html">GNU Lesser General
Public License</A> (LGPL).</SPAN></FONT></P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Level
of standards conformance</FONT></H2>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Pthreads-win32
currently implements a large subset of the POSIX standard threads
related API. See our <A HREF="conformance.html">conformance</A> page
for a complete list of options and functions implemented as well as
those that aren't. </SPAN></FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">HTML
formatted <A HREF="manual/index.html">manual pages</A> are now
available inside the package and on this site. Peruse them for
additional Pthreads-win32 information.</SPAN></FONT></P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Project
maintainer</FONT></H2>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
project is being maintained by Ross Johnson, who has been involved
from the start in 1998. The role primarily involves integrating
contributed code and problem fixes, writing some original sections
and test cases, and of course, testing, packaging and distributing
the product. </SPAN></FONT>
</P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Acknowledgements</FONT></H2>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">We would
like to thank Ben Elliston for initiating the project, and John
Bossom for providing us with his win32 pthreads implementation, which
provided the near complete basis for this project.</SPAN></FONT></P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Thanks
to Xavier Leroy for granting permission to use and modify his
LinuxThreads manual pages, and to the <A HREF="http://www.opengroup.org/">Open
Group</A> for their manual pages.</SPAN></FONT></P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Thanks
also to all past and present <A HREF="contributors.html">contributors</A>
to the project.</SPAN></FONT></P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Please
also see the </SPAN></FONT><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><I>Acknowledgements</I></SPAN></FONT><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">
section of the latest <A HREF="announcement.html">ANNOUNCEMENT</A>
page.</SPAN></FONT></P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">How
does it work?</FONT></H2>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">The Win32
pthreads is normally implemented as a dynamic link library (DLL).
This has some notable advantages from the Win32 point of view, but it
also more closely models existing pthread libraries on UNIX which are
usually shared objects (e.g. libpthread.so). Please note though, that
the library can also be built for static linking if necessary.</FONT></P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Success
stories</FONT></H2>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">The library is
being used in many projects either migrating from Unix platforms or
developing cross-platform applications. These include commercial,
research and other applications, many of which can be found via a
Google search (e.g. try the keywords 'pthreads-win32' and
'requirements').</FONT></P>
<H2 LANG="en-GB" CLASS="western"><A NAME="download"></A><FONT FACE="verdana, arial, helvetica">Where
can I get it?</FONT></H2>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Download</FONT></H3>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">[You can
also get it from one of several <A HREF="http://sourceware.org/mirrors.html">mirror</A>
sites.] </SPAN></FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
source tree and precompiled .DLL, .LIB and necessary header files are
included in the self-extracting zip file
named<BR>&quot;pthread-w32-v-v-v-release.exe&quot;
at:<BR><A HREF="ftp://sourceware.org/pub/pthreads-win32">ftp://sourceware.org/pub/pthreads-win32</A>
<BR>(v-v-v is the version number, e.g. 1-4-0, and “release” is a
descriptive term that may vary, e.g. beta1, rc1. etc)</SPAN></FONT></P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Just the
DLLs, LIBs, header files, and admin documentation is available
at:<BR><A HREF="ftp://sourceware.org/pub/pthreads-win32/dll-latest">ftp://sourceware.org/pub/pthreads-win32/dll-latest</A></SPAN></FONT></P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
source tree is available as a gzipped tar file
from:<BR><A HREF="ftp://sourceware.org/pub/pthreads-win32">ftp://sourceware.org/pub/pthreads-win32</A>
</SPAN></FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
source files are also available in unpacked form
at:<BR><A HREF="ftp://sourceware.org/pub/pthreads-win32/sources">ftp://sourceware.org/pub/pthreads-win32/sources</A>
</SPAN></FONT>
</P>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Direct
access to the CVS code repository</FONT></H3>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">You can
get anonymous read-only access to the source code using CVS
(Concurrent Versioning System), from <A HREF="http://sourceware.org/">sourceware.org</A>.
If you would like to use CVS under Win32, you can get it from
<A HREF="http://www.wincvs.org/">www.wincvs.org</A> </SPAN></FONT>
</P>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">To check out
the most recent development version of the source code, type (or
whatever the equivalent is in wincvs): </FONT>
</P>
<PRE LANG="en-GB"><FONT FACE="verdana, arial, helvetica">cvs -d :pserver:anoncvs@sourceware.org:/cvs/pthreads-win32 login</FONT>
<FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">{enter ``anoncvs'' for the password}</SPAN></FONT>
<FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">cvs -d :pserver:anoncvs@sourceware.org:/cvs/pthreads-win32 checkout pthreads</SPAN></FONT></PRE><H3 LANG="en-GB" CLASS="western">
<FONT FACE="verdana, arial, helvetica">Via the CVS Web page</FONT></H3>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">There is
also a <A HREF="http://sourceware.org/cgi-bin/cvsweb.cgi/pthreads/?cvsroot=pthreads-win32">web
interface</A> to CVS, which might suit you better if you're more
interested in just reading the code. </SPAN></FONT>
</P>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Just
want the DLL without the source code?</FONT></H3>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
latest DLL, development library, include files (pthread.h,
semaphore.h, sched.h) , and ChangeLog are available from
<A HREF="ftp://sourceware.org/pub/pthreads-win32/dll-latest">ftp://sourceware.org/pub/pthreads-win32/dll-latest</A>
</SPAN></FONT>
</P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Mailing
lists</FONT></H2>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">A
<A HREF="http://sourceware.org/ml/pthreads-win32/">discussion list</A>
exists for this project. </SPAN></FONT>
</P>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">To
Subscribe</FONT></H3>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">Send mail to </FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="mailto:pthreads-win32-subscribe@sourceware.org">pthreads-win32-subscribe@sourceware.org</A>
</SPAN></FONT>
</P>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">No subject or
message is required, but will be ignored if present (some mailers may
insist on one or both before sending the message). </FONT>
</P>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Want
to unsubscribe?</FONT></H3>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">Send mail to </FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="mailto:pthreads-win32-unsubscribe@sourceware.org">pthreads-win32-unsubscribe@sourceware.org</A>
</SPAN></FONT>
</P>
<P LANG="en-GB"><FONT FACE="verdana, arial, helvetica">If you still
get mail from the list after this then perhaps you've changed your
address, in which case the list server won't recognise you. If you
are still getting mail forwarded to you from your old address then
you can unsubscribe your old address by sending mail to </FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="mailto:pthreads-win32-unsubscribe-oldname%3Doldhost.olddomain@sourceware.org">pthreads-win32-unsubscribe-oldname=oldhost.olddomain@sourceware.org</A>
</SPAN></FONT>
</P>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">where
oldname=oldhost.olddomain must be your previous address (with the '@'
replaced by '='). A message will be sent to your old address so that
you can confirm your removal. Otherwise you'll have to notify Ross so
that he can remove your previous address by hand. </SPAN></FONT>
</P>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Other
possibilities</FONT></H3>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">There
are also <A HREF="mailinglist.html">ways</A> to get archived mailing
list messages, or messages in digest form etc. </SPAN></FONT>
</P>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Keeping
up with code changes</FONT></H3>
<P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Another
mailing list carries CVS notification messages which are generated
when modifications are checked into CVS. You can subscribe by sending
mail to <A HREF="mailto:sourceware-cvs-pthreads-win32-request@sourceware.org">sourceware-cvs-pthreads-win32-request@sourceware.org</A>.
(What a mouthful!) </SPAN></FONT>
</P>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Project
resources</FONT></H2>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Other
pages</FONT></H3>
<UL>
	<LI><P STYLE="margin-bottom: 0in"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="conformance.html">Conformance</A>
	</SPAN></FONT>
	</P>
	<LI><P STYLE="margin-bottom: 0in"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="manual/index.html">Manual
	pages online</A> – edited for Pthreads-win32</SPAN></FONT></P>
	<LI><P STYLE="margin-bottom: 0in"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="faq.html">FAQ</A>
	</SPAN></FONT>
	</P>
	<LI><P STYLE="margin-bottom: 0in"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="news.html">News
	(release notes)</A> </SPAN></FONT>
	</P>
	<LI><P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="bugs.html">Known
	Bugs</A> </SPAN></FONT>
	</P>
</UL>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Independent
Critiques and benchmarking of the library</FONT></H3>
<UL>
	<LI><P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="http://world.std.com/~jmhart/opensource.htm">Experiments
	with the Open Source Pthreads Library and Some Comments</A> </SPAN></FONT>
	</P>
</UL>
<H2 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">PThreads
resources</FONT></H2>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Documentation/FAQs/Tutorials</FONT></H3>
<UL>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="http://www.UNIX-systems.org/version3/ieee_std.html"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">The
	Single Unix Specification version 3 (IEEE Std 1003.1-2001) free
	online reference</SPAN></FONT></A></P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="http://www.humanfactor.com/pthreads/"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Programming
	POSIX threads</SPAN></FONT></A></P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="http://www.faqs.org/faqs/by-newsgroup/comp/comp.programming.threads.html"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">comp.programming.threads
	FAQ</SPAN></FONT></A></P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="http://www.llnl.gov/computing/tutorials/pthreads/"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Pthreads
	tutorial (from LLNL.GOV)</SPAN></FONT></A></P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="http://www.llnl.gov/computing/tutorials/pthreads/#Routines"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB">Pthreads
	API reference (AIX specific – handy but not pthreads-win32
	specific)</SPAN></FONT></A></P>
</UL>
<H3 LANG="en-GB" CLASS="western"><FONT FACE="verdana, arial, helvetica">Newsgroups</FONT></H3>
<UL>
	<LI><P STYLE="margin-bottom: 0in"><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="news:comp.programming.threads">comp.programming.threads</A>
	</SPAN></FONT>
	</P>
	<LI><P><FONT FACE="verdana, arial, helvetica"><SPAN LANG="en-GB"><A HREF="news:comp.os.ms-windows.programmer.win32">comp.os.ms-windows.programmer.win32</A>
	</SPAN></FONT>
	</P>
</UL>
<HR>
<ADDRESS LANG="en-GB"><A NAME="maintainedby"></A><FONT FACE="verdana, arial, helvetica">Maintained
by Ross Johnson</FONT></ADDRESS>
<ADDRESS LANG="en-GB" STYLE="font-style: normal"><FONT FACE="verdana, arial, helvetica"><FONT SIZE=2>You
can contact me using: Firstname.Lastname at the domain
homemail.com.au</FONT></FONT></ADDRESS>
</BODY>
</HTML>